package net.lzzy.practices.services;

import net.lzzy.practices.entities.Applicant;
import net.lzzy.practices.entities.Course;

import java.util.List;
import java.util.UUID;

/**
 * @author m
 */
public interface ApplicantService {
    //申请课程
    Applicant apply(UUID studentId,UUID courseId,String token);

    /**
     * 获取所有课程
     * @param student
     * @param token
     * @return
     */

    List<Applicant> getAllCourses(UUID student,String token);
    List<Applicant> getApplyingCourses(UUID student,String token);

    List<Applicant> getEnrolledCourses(UUID student,String token);

    /**
     *
     * //获取申请不通过的课程
     * @param student
     * @param token
     * @return
     */
    List<Applicant> getDeclinedCourses(UUID student,String token);

    Applicant approve(UUID applicantId,String token);

    Applicant decline(UUID applicantId,String token);

    List<Applicant> getEnrolledStudents(UUID courseId,String token);

    List<Applicant> getApplyingStudents(UUID courseId,String token);

    List<Applicant> getDeclinedStudents(UUID courseId,String token);

    Course removeStudent(UUID courseId,UUID studentId,String token);


}
